package IO;

import java.io.File;
import java.sql.SQLOutput;
import java.util.Scanner;

//通过关键字查找文件,并选择删除
public class Demo4 {
    private static void scan(File currentFile, String key) {
        if (!currentFile.isDirectory()) {
            //检查当前对象是否为目录,如果不是目录则直接返回
            return;
        }
        File[] files = currentFile.listFiles();
        if (files == null || files.length == 0) {
            return;
        }

        //遍历当前目录所有文件和目录
        for (File f : files) {
            //如果是文件,调用doDelete方法处理
            if (f.isFile()) {
                doDelete(f,key);
            } else {
                //针对目录,进行递归
                scan(f,key);
            }
        }
    }

    private static void doDelete(File f, String key) {
        if (!f.getName().contains(key)) {
            //文件名不包含关键字,返回
            return;
        }

        Scanner scanner = new Scanner(System.in);
        System.out.println(f.getAbsolutePath() + "是否要删除 Y/N");
        String choice = scanner.next();
        if (choice.equals("Y") || choice.equals("y")) {
            f.delete();
            System.out.println("删除成功,请检查文件");
        }
        if (choice.equals("N") || choice.equals("n")) {
            System.out.println("不删除,返回");
        }
    }

    public static void main(String[] args) {
        System.out.println("请输入要搜索的路径: ");
        Scanner scanner = new Scanner(System.in);
        String rootPath = scanner.next();
        File rootFile = new File(rootPath);
        if (!rootFile.isDirectory()) {
            System.out.println("输入的文件路径不存在");
            return;
        }
        System.out.println("请输入要删除的文件的关键字: ");
        String key = scanner.next();

        scan(rootFile,key);
    }
}
